char *str = "abcde"; 与 char str[] ="abcde"; 有何区别?
来源:百度知道 编辑:UC知道 时间:2024/06/18 14:48:36
如题.
赫赫,谢谢一楼 22采3纳9 的好意.
不过我的钱多得用不完,而且笔记本也已经有了.
所以奖金与奖品您留着自个儿用吧.
赫赫,谢谢一楼 22采3纳9 的好意.
不过我的钱多得用不完,而且笔记本也已经有了.
所以奖金与奖品您留着自个儿用吧.
不一样,char *str = "abcde"; 这个定义出来的是个常量,char str[] ="abcde"; 这个定义的是数组,你要不相信的话,可以做个简单的联系
char *str = "abcde"; str[1] = "b";这个就是错误的,而第二个就可以
区别还是很大的。
1,char *str这个没有实际的内存空间,所指的只是"abcde"字符串而已,所以不能修改其值. 而char str[]这个是真正的把"abcde"保存在了内存中,有实际内存空间,所以,可以修改.
2,以指针角度来看,char *str指针可以移动(可以进行str++,str--),但是char str[]不能移动.因为数组可以看成一个常指针.
3,大小.. 凡是指针,32位系统均是4个字节.也就是
char *str="abcde";
sizeof(str)为4;
而数组却可以得出其实际大小.
char str[]="abcde";
sizeof(str)为6(末尾'\0'字符);
当然,strlen(str)都是一样的为5.
两者是一样的,数组名即为一个指针
一样的,str纪录的都是头指针
区别就大了,一个是指针,一个是数组。
char str=23;
str=(char*)mallo(n)
char *str[]={"....是干什么的?
书上说char*str="Student";相当于char*str=new char[8];strcpy(str,"Student")。那么...
char str[ ]="#";sizeof(str)为什么是2不是1啊?
设staic char str[]="abc\0def";则strlen(str)=?
vc 中char* str和char str[]不一样么??
编写函数void fun(char *str)
编写函数void delstr(char *str,char *s)
输入char str[20]; 怎样才会不溢位??(c++语言)